home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ; .ss.
- ; `²²'
- ; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
- ; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
- ; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
- ; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
- ; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
- ; .sS²°$$$²²°"' d²°'
- ; .$$² .$$'
- ; $$$.,d$$'
- ; `²S$$S²'
- ;------------------------------------------------------------------------------
- ; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
- ;------------------------------------------------------------------------------
- ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
- ;------------------------------------------------------------------------------
-
- Boolean BOOLEAN001
- Integer INTEGER001
- String STRING001
- String STRING002
- String STRING003
- String STRING004
- String STRING005
- String STRING006
- String TSTRING007(10)
- String TSTRING008(1)
- String STRING009
- String STRING010
- String STRING011
- String STRING012
- String STRING013
- String STRING014
- String STRING015
- String STRING016
- String STRING017
- String STRING018
- String STRING019
- String STRING020
- String STRING021
- String STRING022
- String STRING023
- String STRING024
- String STRING025
- String STRING026
- String STRING029
- String STRING030
- String STRING031
- Int INT001
- Int INT002
- Int INT003
- Declare Function FUNCTION001(Integer INTEGER005) String
- Declare Function FUNCTION002() String
- Declare Procedure PROC001(Var String STRING027, Integer INTEGER002)
-
- ;------------------------------------------------------------------------------
-
- STRING005 = Cwd()
- TSTRING008(0) = " @X08· @X09PCBoard DOS Version 1.00 @X08· @X07Coded by @X0FM@X07av@X08erick [@X0CANTi@X08-@X0FX@X08]"
- TSTRING008(1) = " @X08· @X07Based on iNiQUiTY's MicroDOS(C) by Mike Fricker"
- FOpen 1, PPEPath() + "PCBDOS.CFG", 0, 0
- FGet 1, STRING015
- FGet 1, STRING003
- FGet 1, STRING021
- FGet 1, STRING018
- FGet 1, STRING019
- FGet 1, STRING016
- FGet 1, STRING017
- FGet 1, STRING022
- FGet 1, STRING023
- FGet 1, STRING024
- FGet 1, STRING025
- FGet 1, STRING026
- FGet 1, STRING020
- FGet 1, STRING009
- FGet 1, STRING010
- FGet 1, STRING011
- FGet 1, STRING012
- FGet 1, STRING014
- FGet 1, STRING013
- FClose 1
- RdUNet PcbNode()
- WrUNet PcbNode(), "B", UN_Name(), UN_City(), UN_Name(), ""
- Cls
- PrintLn STRING015
- Newlines 2
- PrintLn TSTRING008(0)
- PrintLn TSTRING008(1)
- Newline
- INT002 = 0
- :LABEL001
- StartDisp 1
- BOOLEAN001 = 0
- Newline
- OpText Cwd()
- Print STRING003
- PROC001(STRING004, 80 - Len(Cwd()))
- If (STRING004 == "") Goto LABEL001
- STRING006 = STRING004
- STRING004 = Upper(STRING004)
- If (InStr(STRING004, "/P") > 0) Then
- STRING004 = StripStr(STRING004, "/P")
- BOOLEAN001 = 1
- Endif
- Tokenize STRING004
- STRING004 = GetToken()
- If (STRING004 == "EXIT") Then
- ChDir STRING005
- End
- Endif
- Select Case (STRING004)
- Case "?", "HELP"
- If (BOOLEAN001) StartDisp 2
- DispFile PPEPath() + "PCBDOS.HLP", 0
- Case "DIR"
- If (BOOLEAN001) StartDisp 2
- Newlines 2
- STRING004 = GetToken()
- If (STRING004 == "") STRING004 = "*.*"
- STRING001 = FUNCTION002()
- OpText STRING001
- PrintLn STRING020
- Newline
- STRING001 = FindFirst(STRING004)
- Case ""
- OpText STRING004
- PrintLn STRING019
- INTEGER001 = 0
- While (STRING001 <> "") Do
- STRING004 = ReplaceStr(STRING009, "@FILENAME@", Trim(FileInf(STRING001, 8), " "))
- STRING004 = ReplaceStr(STRING004, "@EXT@", Left(FileInf(STRING001, 9), 3))
- STRING004 = ReplaceStr(STRING004, "@SIZE@", Space(10 - Len(StripAtx(FUNCTION001(FileInf(STRING001, 4))))) + FUNCTION001(FileInf(STRING001, 4)))
- STRING004 = ReplaceStr(STRING004, "@DATE@", ReplaceStr(String(FileInf(STRING001, 2)), "-", STRING010))
- STRING004 = ReplaceStr(STRING004, "@TIME@", ReplaceStr(Left(String(FileInf(STRING001, 3)), 5), ":", STRING011))
- INT001 = FileInf(STRING001, 5)
- If (IsBitSet(INT001, 0)) Then
- STRING004 = ReplaceStr(STRING004, "@R@", "R")
- Else
- STRING004 = ReplaceStr(STRING004, "@R@", STRING014)
- Endif
- If (IsBitSet(INT001, 1)) Then
- STRING004 = ReplaceStr(STRING004, "@H@", "H")
- Else
- STRING004 = ReplaceStr(STRING004, "@H@", STRING014)
- Endif
- If (IsBitSet(INT001, 2)) Then
- STRING004 = ReplaceStr(STRING004, "@S@", "S")
- Else
- STRING004 = ReplaceStr(STRING004, "@S@", STRING014)
- Endif
- If (IsBitSet(INT001, 5)) Then
- STRING004 = ReplaceStr(STRING004, "@A@", "A")
- Else
- STRING004 = ReplaceStr(STRING004, "@A@", STRING014)
- Endif
- If (Abort()) Goto LABEL002
- PrintLn STRING004
- Inc INTEGER001
- STRING001 = FindNext()
- EndWhile
- OpText FUNCTION001(INTEGER001)
- PrintLn STRING013
- Case "TYPE"
- Newlines 2
- If (BOOLEAN001) StartDisp 2
- DispFile GetToken(), 0
- Wait
- Case "CLS"
- Cls
- Case "CD"
- STRING004 = Trim(Right(STRING006, Len(STRING006) - 2), " ")
- ChDir STRING004
- Case "MD", "MKDIR"
- MkDir GetToken()
- Case "RD", "RMDIR"
- ReDir GetToken()
- Case "DEL"
- STRING004 = GetToken()
- STRING001 = FindFirst(STRING004)
- Case ""
- OpText STRING001
- PrintLn STRING019
- Case "*.*"
- Newline
- STRING004 = "N"
- STRING001 = FUNCTION002() + "*.*"
- OpText STRING001
- InputYN STRING017, STRING004, 7
- If (STRING004 == YesChar()) Then
- Delete STRING001
- Endif
- While (STRING001 <> "") Do
- STRING004 = "N"
- If (BOOLEAN001) Then
- Newline
- OpText Trim(STRING001, " ")
- InputYN STRING016, STRING004, 7
- If (STRING004 == YesChar()) Then
- Delete STRING001
- Endif
- Else
- Delete STRING001
- Endif
- STRING001 = FindNext()
- EndWhile
- Case "REN"
- STRING001 = GetToken()
- STRING004 = GetToken()
- If ((STRING001 == "") || (STRING004 == "")) Then
- Newlines 2
- PrintLn STRING018
- Else
- Rename STRING001, STRING004
- Endif
- Case "EXT"
- STRING004 = GetToken()
- If (STRING004 == "") Then
- Newlines 2
- PrintLn STRING018
- Else
- STRING001 = Trim(Right(STRING006, Len(STRING006) - 3), " ")
- Tokenize STRING001
- STRING004 = GetToken()
- Newline
- OpText STRING004
- PrintLn STRING026
- SaveScrn
- Shell 1, INTEGER001, STRING004, GetToken()
- RestScrn
- If (Exist("PCBDOS.TXT")) Then
- StartDisp 2
- Newlines 2
- DispFile "PCBDOS.TXT", 0
- Delete "PCBDOS.TXT"
- Wait
- Endif
- Endif
- Case "PPE"
- STRING004 = GetToken()
- Newlines 2
- If (STRING004 == "") Then
- PrintLn STRING018
- Else
- STRING001 = Trim(Right(STRING006, Len(STRING006) - 3), " ")
- Call STRING001
- Endif
- Case "FLAG"
- STRING002 = Cwd()
- Newlines 2
- STRING004 = GetToken()
- If (STRING004 == "") Then
- PrintLn STRING018
- Else
- STRING001 = FindFirst(STRING004)
- If (STRING001 == "") Then
- OpText STRING004
- PrintLn STRING019
- Goto LABEL002
- Endif
- While (STRING001 <> "") Do
- STRING001 = Trim(FUNCTION002() + STRING001, " ")
- OpText STRING001
- PrintLn STRING022
- ChDir STRING005
- Flag STRING001
- ChDir STRING002
- STRING001 = FindNext()
- EndWhile
- Endif
- ChDir STRING002
- Case "SEND"
- Case
- Newlines 2
- PrintLn STRING023
- STRING001 = FUNCTION002()
- Newlines 2
- STRING004 = GetToken()
- If (STRING004 == "") Then
- PrintLn STRING018
- Else
- STRING001 = FindFirst(STRING001 + STRING004)
- FOpen 1, STRING005 + "\PCBDSZ.LST", 1, 3
- While (STRING001 <> "") Do
- FPutLn 1, FUNCTION002() + STRING001
- STRING001 = Trim(FindNext(), " ")
- EndWhile
- FClose 1
- PrintLn STRING024
- Shell 1, INTEGER001, "ZMSEND.EXE", "@" + STRING005 + "\PCBDSZ.LST"
- Delete STRING005 + "\PCBDSZ.LST"
- STRING001 = GetEnv("DSZLOG")
- If (Exist(STRING001)) Delete STRING001
- Newline
- Endif
- Case "RECEIVE"
- Case
- Newlines 2
- PrintLn STRING023
- STRING001 = FUNCTION002()
- Newlines 2
- PrintLn STRING025
- Shell 1, INTEGER001, "ZMRECV.EXE", STRING001
- STRING001 = GetEnv("DSZLOG")
- If (Exist(STRING001)) Delete STRING001
- Newline
- Case "VER"
- Newlines 2
- PrintLn TSTRING008(0)
- PrintLn TSTRING008(1)
- Case Else
- Newline
- Print STRING021
- End Select
- :LABEL002
- If (INT002 < 10) INT002 = INT002 + 1
- TSTRING007(10) = TSTRING007(9)
- TSTRING007(9) = TSTRING007(8)
- TSTRING007(8) = TSTRING007(7)
- TSTRING007(7) = TSTRING007(6)
- TSTRING007(6) = TSTRING007(5)
- TSTRING007(5) = TSTRING007(4)
- TSTRING007(4) = TSTRING007(3)
- TSTRING007(3) = TSTRING007(2)
- TSTRING007(2) = TSTRING007(1)
- TSTRING007(1) = STRING006
- Goto LABEL001
- End
-
- ;------------------------------------------------------------------------------
-
- Procedure PROC001(Var String STRING027, Integer INTEGER002)
-
- String STRING028
- Integer INTEGER003
- Integer INTEGER004
-
- STRING027 = ""
- INTEGER003 = 0
- :LABEL003
- STRING028 = TInkey(0)
- If (Len(STRING028) > 1) Then
- If (STRING028 == "UP") Then
- If (INTEGER004 < INT002) Then
- TSTRING007(INTEGER004) = STRING027
- INTEGER004 = INTEGER004 + 1
- Backup 80
- Print STRING003 + TSTRING007(INTEGER004)
- ClrEol
- INTEGER003 = Len(TSTRING007(INTEGER004))
- STRING027 = TSTRING007(INTEGER004)
- Endif
- Endif
- If (STRING028 == "DOWN") Then
- If (INTEGER004 > 0) Then
- TSTRING007(INTEGER004) = STRING027
- INTEGER004 = INTEGER004 - 1
- Backup 80
- Print STRING003 + TSTRING007(INTEGER004)
- ClrEol
- INTEGER003 = Len(TSTRING007(INTEGER004))
- STRING027 = TSTRING007(INTEGER004)
- Endif
- Endif
- Endif
- TSTRING007(INTEGER004) = STRING027
- If (STRING028 == Chr(13)) Goto LABEL004
- If (STRING028 == Chr(29)) Goto LABEL003
- If (STRING028 == Chr(27)) Then
- INTEGER003 = 0
- TSTRING007(INTEGER004) = ""
- STRING027 = ""
- Backup 80
- Print STRING003
- ClrEol
- Goto LABEL003
- Endif
- If (STRING028 == Chr(8)) Then
- If (INTEGER003 == 0) Goto LABEL003
- INTEGER003 = INTEGER003 - 1
- Backup 1
- Print " "
- Backup 1
- STRING027 = Left(STRING027, INTEGER003)
- Goto LABEL003
- Endif
- If (!(Len(STRING028) == 1)) Goto LABEL003
- If (Asc(STRING028) < 31) Goto LABEL003
- If (INTEGER003 == INTEGER002) Goto LABEL003
- STRING027 = STRING027 + STRING028
- INTEGER003 = INTEGER003 + 1
- Print "@X08", STRING028
- Backup 1
- Delay 1
- Print "@X07", STRING028
- Backup 1
- Delay 1
- Print "@X0F", STRING028
- Goto LABEL003
- :LABEL004
- STRING027 = Trim(TSTRING007(INTEGER004), " ")
-
- EndProc
-
-
- ;------------------------------------------------------------------------------
-
- Function FUNCTION001(Integer INTEGER005) String
-
- Int INT003
- String STRING030
- String STRING031
-
- INT003 = 1
- While (((1 < 0) && (INT003 >= Len(INTEGER005) / 3 + 1)) || ((1 >= 0) && (INT003 <= Len(INTEGER005) / 3 + 1))) Do
- STRING030 = Trim(Left(Right(INTEGER005, INT003 * 3), 3), " ")
- If (INT003 == 1) Then
- FUNCTION001 = STRING030
- Else
- If (STRING030 <> "") FUNCTION001 = STRING030 + STRING012 + FUNCTION001
- Endif
- INT003 = INT003 + 1
- EndWhile
-
- EndFunc
-
-
- ;------------------------------------------------------------------------------
-
- Function FUNCTION002() String
-
- If (Right(Cwd(), 1) == "\") Goto LABEL005
- FUNCTION002 = Cwd() + "\"
- Goto LABEL006
- :LABEL005
- FUNCTION002 = Cwd()
- :LABEL006
-
- EndFunc
-
-
- ;------------------------------------------------------------------------------
- ;
- ; Usage report (before postprocessing)
- ;
- ; ■ Statements used :
- ;
- ; 2 End
- ; 2 Cls
- ; 3 ClrEol
- ; 2 Wait
- ; 100 Goto
- ; 94 Let
- ; 9 Print
- ; 22 PrintLn
- ; 66 If
- ; 3 DispFile
- ; 2 FOpen
- ; 2 FClose
- ; 19 FGet
- ; 1 FPutLn
- ; 5 StartDisp
- ; 7 Delete
- ; 2 InputYN
- ; 2 Delay
- ; 1 Inc
- ; 9 Newline
- ; 13 Newlines
- ; 2 Tokenize
- ; 3 Shell
- ; 1 Call
- ; 10 OpText
- ; 1 RdUNet
- ; 1 WrUNet
- ; 7 Backup
- ; 1 SaveScrn
- ; 1 RestScrn
- ; 1 Rename
- ; 1 Flag
- ; 1 EndProc
- ; 2 EndFunc
- ; 5 ChDir
- ; 1 MkDir
- ; 1 ReDir
- ;
- ;
- ; ■ Functions used :
- ;
- ; 1 *
- ; 2 /
- ; 23 +
- ; 7 -
- ; 44 ==
- ; 5 <>
- ; 4 <
- ; 1 <=
- ; 3 >
- ; 2 >=
- ; 51 !
- ; 2 &&
- ; 5 ||
- ; 11 Len(
- ; 1 Upper()
- ; 5 Left()
- ; 5 Right()
- ; 1 Space()
- ; 4 Chr()
- ; 1 Asc()
- ; 1 InStr()
- ; 1 Abort()
- ; 9 Trim()
- ; 2 YesChar()
- ; 1 StripAtx()
- ; 2 String()
- ; 2 PPEPath()
- ; 2 PcbNode()
- ; 2 OnLocal()
- ; 2 UN_Name()
- ; 1 UN_City()
- ; 14 GetToken()
- ; 2 GetEnv()
- ; 3 Exist()
- ; 7 FileInf()
- ; 15 ReplaceStr()
- ; 1 StripStr()
- ; 4 IsBitSet()
- ; 4 FindFirst()
- ; 4 FindNext()
- ; 1 TInkey()
- ; 7 Cwd()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Analysis flags : SCfi
- ;
- ; S - Shell to DOS ■ 5
- ; This may be normal if the PPE need to execute an external command,
- ; but may be actually anything... nasty (formating HD, rebooting,...)
- ; or usefull (sorting, maintenance,...). Check!
- ; ■ Search for : SHELL
- ;
- ; C - Call child PPE ■ 3
- ; This is usually normal, but may be a tricky way to launch some
- ; sysop-only commands.
- ; ■ Search for : CALL
- ;
- ; f - Flag files for download ■ 3
- ; This may be normal if a PPE needs to send some files, but since
- ; this statement allows flagging of any file on the hard disk, you
- ; have to be carefull. Check!
- ; ■ Search for : FLAG
- ;
- ; i - Sequencially read files in directory ■ 3
- ; Program is reading files in directory sequencially, maybe to get
- ; a DIR image, but this can be to look for targets to destroy
- ; ■ Search for : FINDFIRST(), FINDNEXT()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Postprocessing report
- ;
- ; 0 For/Next
- ; 5 While/EndWhile
- ; 24 If/Then or If/Then/Else
- ; 1 Select Case
- ;
- ;------------------------------------------------------------------------------
- ; AEGiS Corp - Break the routines, code against the machines!
- ;------------------------------------------------------------------------------
-